package com.faithbj.printer.service;

import java.util.Stack;

import org.openqa.selenium.WebDriver;

public interface WindowOperationService {
	
	/**
	 * 关闭当前窗口，并回退到父窗口（如果仅有一个窗口，则什么也不执行）
	 * @param driver
	 * @param historyWindowHandles
	 */
	void closeCurrentWindow(WebDriver driver, Stack<String> historyWindowHandles);
	
	/**
	 * 切换到某个新弹出窗口，并把新窗口的handle入栈
	 * @param driver
	 * @param historyWindowHandles
	 */
	void swithToNewWindow(WebDriver driver, Stack<String> historyWindowHandles);
	
	/**
	 * 确认alert窗口
	 * @param driver
	 */
	void acceptAlert(WebDriver driver);
	
	/**
	 * 清理打开的多余窗口，只留下当前一个窗口
	 * @param driver
	 */
	void cleanIdleWindows(WebDriver driver);
	
	/**
	 * 清理打开的多余窗口，只留下windowHandle对应的一个窗口
	 * @param driver
	 * @param windowHandle
	 */
	void cleanIdleWindows(WebDriver driver,String windowHandle);
	
	/**
	 * 清理打开的多余窗口，只留下栈顶窗口
	 * @param driver
	 */
	void cleanIdleWindows(WebDriver driver, Stack<String> historyWindowHandles);
}
